Refresh na ClientDatasetu

Otázka od: Viktor Doubek

4. 12. 2003 13:08

Pekny den vsem,
i kdyz se to zde udajne propiralo mockrat, fulltextem se mi
nepodarilo najit odpoved na otazku, jak je to s %Subj%.
V mem pripade je to napojeni SQLConnection> SQLDataSet> Provider>
ClientDataset> DBGrid. Problemem je to, ze po UpplyUpdates mi Refresh
vrati puvodni stav tabulky, tj. bez mych zmen a RefreshRecord hazi
chybu "Unable to find record. No key specified".
Nevim, jak mu vnutit ten klic, zkousel jsem IndexFields, ale
bezvysledne. Krome viditelnosti zmen od ostatnich uzivatelu potrebuji
jsem chtel refresh na precteni hodnoty autoincrement fieldu vracene
serverem po insertu. Mate s tim nekdo zkusenost?
A vubec je pro tyhle ucely (DBGrid s podporou lokalniho trieni,
vyhledavani, filtru apod.(i z vice tabulek)) ten postup vhodny?
Diky moc za odpovedi.

VK
















---

Odpovedá: Viktor Doubek

5. 12. 2003 11:42

Omlouvam se, nenapsal jsem konfiguraci: Delphi 7 Prof., FB 1.5, WXP
Zkousel jsem jeste nejaka dema z bdn.borland.com a vysledky jsou
nasledujici:
Na BDE to funguje naprosto krasne, pokud jsem pristupovy dataset
prepnul z Table(BDE) na SQLDataset(DBX), tak se to chovalo jako
viz.nize, po prepnuti na IBQuery(IBX) se zase pro zmenu vubec
neprovedlo ApplyUpdates. Takze jsem z toho mirne receno rozmrzely.
Opravdu se nenajde nekdo, kdo to ma vyresene?
Diky moc za odpoved(i). VK

> Pekny den vsem,
> i kdyz se to zde udajne propiralo mockrat, fulltextem se mi
> nepodarilo najit odpoved na otazku, jak je to s %Subj%.
> V mem pripade je to napojeni SQLConnection> SQLDataSet> Provider>
> ClientDataset> DBGrid. Problemem je to, ze po UpplyUpdates mi
> Refresh vrati puvodni stav tabulky, tj. bez mych zmen a
> RefreshRecord hazi chybu "Unable to find record. No key specified".
> Nevim, jak mu vnutit ten klic, zkousel jsem IndexFields, ale
> bezvysledne. Krome viditelnosti zmen od ostatnich uzivatelu
> potrebuji jsem chtel refresh na precteni hodnoty autoincrement
> fieldu vracene serverem po insertu. Mate s tim nekdo zkusenost?
> A vubec je pro tyhle ucely (DBGrid s podporou lokalniho trieni,
> vyhledavani, filtru apod.(i z vice tabulek)) ten postup vhodny?
> Diky moc za odpovedi.

> VK



Odpovedá: Jaroslav Popluhar

6. 12. 2003 18:07

Hello Viktor,

VD> Omlouvam se, nenapsal jsem konfiguraci: Delphi 7 Prof., FB 1.5, WXP
VD> Zkousel jsem jeste nejaka dema z bdn.borland.com a vysledky jsou
VD> nasledujici:
VD> Na BDE to funguje naprosto krasne, pokud jsem pristupovy dataset
VD> prepnul z Table(BDE) na SQLDataset(DBX), tak se to chovalo jako
VD> viz.nize, po prepnuti na IBQuery(IBX) se zase pro zmenu vubec
VD> neprovedlo ApplyUpdates. Takze jsem z toho mirne receno rozmrzely.
VD> Opravdu se nenajde nekdo, kdo to ma vyresene?

Tiez to prave riesime. Pouzivame CDS oproti ADO a funguje to
podobne ("Unable to find record. No key specified").
RefreshRecord dost potrebujeme, lebo CDS je ovela pomalsi ako ADO
samotne (pri nacitavani dat).

Mozes poslat presne linky na tie dam z bdn.borland.com.
Skusime to podrobit analyze, aby sme vedeli ako to funguje cez BDE.

Navyse mame problem najma s PK (ale aj inymi) hodnotami, ktore nam
doplna server {v triggroch).
V ADO to funguje OK, ked sa to prepoji cez CDS je to v haji...


>> Pekny den vsem,
>> i kdyz se to zde udajne propiralo mockrat, fulltextem se mi
>> nepodarilo najit odpoved na otazku, jak je to s %Subj%.
>> V mem pripade je to napojeni SQLConnection> SQLDataSet> Provider>
>> ClientDataset> DBGrid. Problemem je to, ze po UpplyUpdates mi
>> Refresh vrati puvodni stav tabulky, tj. bez mych zmen a
>> RefreshRecord hazi chybu "Unable to find record. No key specified".
>> Nevim, jak mu vnutit ten klic, zkousel jsem IndexFields, ale
>> bezvysledne. Krome viditelnosti zmen od ostatnich uzivatelu
>> potrebuji jsem chtel refresh na precteni hodnoty autoincrement
>> fieldu vracene serverem po insertu. Mate s tim nekdo zkusenost?
>> A vubec je pro tyhle ucely (DBGrid s podporou lokalniho trieni,
>> vyhledavani, filtru apod.(i z vice tabulek)) ten postup vhodny?
>> Diky moc za odpovedi.

>> VK







--
Best regards,
 Jaroslav mailto:delphi1@acc.sk


Odpovedá: Viktor Doubek

8. 12. 2003 10:59

Tak o vikendu jsem si s tim docela hral, a jediny problem (co se tyce Refresh),
byl v isolaci transakci. Mel jsem tam moji oblibenou RepeatableRead, ale musi
byt *ReadCommited*, jinak se to chova fakt divne (ovsem v dokumentaci ani
zbla).
Na vyzkum ohledne RefreshRecord uz mi ovsem nezbyl cas.
Linky uz nemam, ale mam toho vic stazeno (~1MB), muzu poslat, ale myslim, ze
RefreshRecord jsem tam nevidel....Ale za pokus to asi stoji. VK


>Mozes poslat presne linky na tie dam z bdn.borland.com.
>Skusime to podrobit analyze, aby sme vedeli ako to funguje cez BDE.

>Navyse mame problem najma s PK (ale aj inymi) hodnotami, ktore nam
>doplna server {v triggroch).
>V ADO to funguje OK, ked sa to prepoji cez CDS je to v haji...